DokuWiki

It's better when it's simple

Користувальницькі налаштування

Налаштування сайту


uk:devel:templates:main.php

main.php файл шаблону

main.php охоплює більшість сторінок, які ви побачите при перегляді встановленої DokuWiki; це включає всі “дії DokuWiki”, перелічені в менеджері конфігурацій.

Багато з описаного тут функціоналу також застосовується до detail.php та mediamanager.php, тобто все до першого div плюс html_msgarea() повинно бути спільним для всіх файлів шаблону.

Мінімум...

Ось мінімальні вимоги для того, щоб сторінка відображалася і взаємодіяла належним чином для вашого шаблону.

Функціональність

Зазвичай варто починати сторінки шаблону з оголошення doctype та тега <html>, який повідомляє браузеру, якою мовою і в якому напрямку текст використовує сторінки вікі.

<!DOCTYPE html>
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xml:lang="<?php echo $conf['lang']?>"
  lang="<?php echo $conf['lang']?>"
  dir="<?php echo $lang['direction']?>">

Перший фактичний виклик PHP здійснюється до tpl_metaheaders(), який охоплює CSS і JavaScript, необхідні та надані DokuWiki, а також все, що зібрано з style.ini.

  <head>
    <?php tpl_metaheaders()?>

Далі йде tpl_pagetitle(), який використовує ідентифікатор сторінки (або, за бажанням, перший заголовок) як заголовок сторінки разом із заголовком вашої вікі1). Має сенс оголосити набір символів безпосередньо перед цим:

    <meta charset="UTF-8" />
    <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title>

Щоб додати фавікон, ви можете використовувати tpl_favicon(), який за замовчуванням використовуватиме файл favicon.ico з директорії images шаблону. Але це можна змінити, завантаживши цей файл у wiki або кореневий простір імен вашої вікі через менеджер медіафайлів.

    <?php echo tpl_favicon(array('favicon')) ?>
  </head>

Коли ви готові до відображення, вам потрібно додати tpl_classes() (яка також включає клас dokuwiki) десь у верхній частині, щоб ваша сторінка коректно працювала з плагінами, які використовують стилі. Ідентифікатор dokuwiki__top потрібен для функції “Повернутися наверх”.

  <body>
    <div class="<?php echo tpl_classes() ?>" id="dokuwiki__top">

Ваш шаблон повинен мати узгоджений заголовок, який відображає назву вікі та слоган:

      <h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1>
      <?php if ($conf['tagline']): ?>
        <p><?php echo $conf['tagline'] ?></p>
      <?php endif ?>

Вам потрібні всі кнопки/посилання для утиліт за допомогою tpl_action(), щоб зробити вашу вікі повністю функціональною. Ось всі кнопки, надані за замовчуванням у стандартному шаблоні.

      <div class="actions">
        <?php tpl_searchform()?>
        <?php tpl_action('admin')?>
        <?php tpl_action('profile')?>
        <?php tpl_action('register')?>
        <?php tpl_action('login')?>
        <?php tpl_action('edit')?>
        <?php tpl_action('revisions')?>
        <?php tpl_action('backlink')?>
        <?php tpl_action('subscribe')?>
        <?php tpl_action('revert')?>
        <?php tpl_action('recent')?>
        <?php tpl_action('media')?>
        <?php tpl_action('index')?>
        <?php tpl_action('top')?>
      </div>

Тепер уявіть себе в області контенту вашої сторінки. Спершу вам потрібно викликати функцію відображення помилок, html_msgarea(). Це дозволяє вам бачити, наприклад, помилки конфігурації в DokuWiki, коли вони виникають, або помилки рендерингу плагінів, або переглядати результати do=check, коли ви додаєте це до кінця URL на вашому сайті.

      <?php html_msgarea()?>

Деякі дрібниці - це “хлібні крихти” та посилання “ви тут”. Ви можете додати їх будь-де в області контенту, у будь-якому порядку за допомогою tpl_breadcrumbs() та tpl_youarehere(), і вони цілком необов'язкові та залишаються на ваш розсуд. Якщо ви розробляєте шаблон для загального використання, ви захочете підтримувати обидва, щоб ваші кінцеві користувачі могли обирати.

      <?php if ($conf['breadcrumbs']): ?>
        <p><?php tpl_breadcrumbs() ?></p>
      <?php endif ?>
      <?php if ($conf['youarehere']): ?>
        <p><?php tpl_youarehere() ?></p>
      <?php endif ?>

Цей момент кульмінації всього процесу - це відображення вмісту сторінки; це всього лише один виклик tpl_content(), і він використовується для всіх дій — перегляду, редагування, навігації по індексу, пошуку та будь-якої сторінки з формою.

      <?php tpl_content(); ?>

Наближаючись до кінця розділу контенту, ви можете додати інформацію про те, коли останній раз змінювалась сторінка і хто це зробив, а також під яким користувачем ви зараз увійшли та яка ліцензія використовується у вашій вікі:

      <p>
        <?php tpl_pageinfo()?><br />
        <?php tpl_userinfo()?><br />
        <?php tpl_license()?>
      </p>

Багато шаблонів відображають бічну панель, коли установлена опція конфігурації бічної панелі. Це відобразить вміст сторінки з назвою “sidebar”:

      <?php tpl_include_page($conf['sidebar'], 1, 1) ?>

І нарешті, вам необхідно цю функцію, щоб забезпечити належну функціональність пошуку та здатність знаходити ваші сторінки:

      <?php tpl_indexerWebBug(); ?>
    </div>
  </body>
</html>

Altogether now...

У нас є невеликий зразок, робочий main.php для шаблону, який виглядає наступним чином:

<!DOCTYPE html>
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xml:lang="<?php echo $conf['lang']?>"
  lang="<?php echo $conf['lang']?>"
  dir="<?php echo $lang['direction']?>">
  <head>
    <?php tpl_metaheaders()?>
    <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title>
    <?php echo tpl_favicon(array('favicon')) ?>
  </head>
  <body>
    <div class="<?php echo tpl_classes(); ?>" id="dokuwiki__top">
      <h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1>
      <?php if ($conf['tagline']): ?>
        <p><?php echo $conf['tagline'] ?></p>
      <?php endif ?>
      <div class="actions">
        <?php tpl_searchform()?>
        <?php tpl_action('admin')?>
        <?php tpl_action('profile')?>
        <?php tpl_action('register')?>
        <?php tpl_action('login')?>
        <?php tpl_action('edit')?>
        <?php tpl_action('revisions')?>
        <?php tpl_action('backlink')?>
        <?php tpl_action('subscribe')?>
        <?php tpl_action('revert')?>
        <?php tpl_action('recent')?>
        <?php tpl_action('media')?>
        <?php tpl_action('index')?>
        <?php tpl_action('top')?>
      </div>
      <?php html_msgarea()?>
      <?php if ($conf['breadcrumbs']): ?>
        <p><?php tpl_breadcrumbs() ?></p>
      <?php endif ?>
      <?php if ($conf['youarehere']): ?>
        <p><?php tpl_youarehere() ?></p>
      <?php endif ?>
      <?php tpl_content(); ?>
      <p>
        <?php tpl_pageinfo()?><br />
        <?php tpl_userinfo()?><br />
        <?php tpl_license()?>
      </p>
      <?php tpl_include_page($conf['sidebar'], 1, 1) ?>
      <?php tpl_indexerWebBug(); ?>
    </div>
  </body>
</html>

Тепер у вас є всі кнопки, а також поле пошуку, і цього достатньо для розробки шаблону.

Вигляд і відчуття

FIXME Пояснення стилів для:

  • Звичайного перегляду
  • Редагування
  • Навігації по індексу (або того, що зазвичай називають навігацією «картою сайту»)
  • Пошуку
  • Сторінок типу форми, таких як реєстрація, профіль, адміністрування, конфігурація та інше.
  • Тут повинна бути інформація щодо таблиць стилів, оскільки всі вони потребують інформації зі стилів.

Джерело

Джерело файлу main.php шаблону 'dokuwiki' можна знайти за посиланням lib/tpl/dokuwiki/main.php. main.php шаблону Starter містить корисні коментарі.

Див. також

1)
Це причина використання $conf у цьому випадку.
uk/devel/templates/main.php.txt · Востаннє змінено: 2024-05-20 13:31 повз uaKalwin

Якщо не вказано інше, вміст цієї Вікі підпадає під дію такої ліцензії: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki